const path = require("path");

const pkg = require(path.resolve(process.cwd(), "package.json"));
const version = pkg.version;

const time = new Date().getTime();

const outputPath = `dist/${pkg.name}`;

module.exports = {
	publicPath: `/`, // 根域上下文目录
	outputDir: `${outputPath}`, // 构建输出目录
	assetsDir: "",
	indexPath: "index.html",
	productionSourceMap: false, // 关闭生产环境的 source map
	configureWebpack: (config) => {
		config.mode = process.env.NODE_ENV;
		config.output.filename = `js/[name].js?v=${version}&t=${time}`;
		config.output.chunkFilename = `js/[name].js?v=${version}&t=${time}`;
		config.plugins = config.plugins || [];
	},
	chainWebpack: config => {
		config.optimization.minimize(process.env.NODE_ENV === "production")// 开启压缩js代码
		config.optimization.splitChunks({ // 开启代码分割
			chunks: 'all'
		});
		config.plugin("html").tap(args => {
			args[0].title = "LightMall-轻商城";
			return args;
		});
	},
	devServer: {
		port: 8083,
		// proxy: {
		// 	"/api": {
		// 		target: "http://localhost:8082",
		// 		changeOrigin: true,// 在本地会创建一个虚拟服务端，然后发送请求的数据，并同时接收请求的数据，这样服务端和服务端进行数据的交互就不会有跨域问题
		// 	}
		// },
	},
	lintOnSave: false,
	filenameHashing: false,

	css: {
		// 是否使用css分离插件 ExtractTextPlugin
		//css 添加版本号
		extract: {
			//一种方式，打包后的css 会带版本号，不改变文件名的。
			filename: `css/[name].css?v=${version}&t=${time}`,
			chunkFilename: `css/[name].css?v=${version}&t=${time}`,
		},
	},
};
